package com.molichuxing.services.infrastructure.bean;

import java.io.Serializable;
import java.time.LocalDateTime;

public class ResourceBean implements Serializable {
    /**
     * id permission_id
     */
    private Integer permissionId;

    /**
     *  system_id
     */
    private Integer systemType;

    /**
     * 名称 permission_name
     */
    private String permissionName;

    /**
     * code编码  控制前端是否显示 code
     */
    private String code;

    /**
     * action action_url
     */
    private String pathUrl;

    /**
     * 操作日志名称 permission_description
     */
    private String permissionDescription;

    /**
     * 权限等级，1为通用接口权限，2为需要校验接口权限 api_level
     */
    private Integer apiLevel;

    /**
     * 顺序 sort
     */
    private Integer sort;

    /**
     * 0：按钮1：菜单 2：api,3:url 4:超链 5 页签 permission_type
     */
    private Integer permissionType;

    /**
     * icon icon
     */
    private String icon;

    /**
     * 上级菜单的编号
             0代表当前菜单为根结点
              pid
     */
    private Integer pid;

    /**
     * 备注 remark
     */
    private String remark;

    /**
     * 是否删除(0:否，1：是) is_delete
     */
    private Boolean isDelete;

    /**
     * 后台接口地址 uri
     */
    private String uri;

    /**
     * 创建时间 gmt_create
     */
    private LocalDateTime gmtCreate;

    /**
     * 更新时间 gmt_modified
     */
    private LocalDateTime gmtModified;

    /**
     * permission_resource
     */
    private static final long serialVersionUID = 1L;

    /**
     * id
     * @date 2019-09-27 10:49:22
     * @return permission_id id
     */
    public Integer getPermissionId() {
        return permissionId;
    }

    /**
     * id
     * @date 2019-09-27 10:49:22
     * @param permissionId id
     */
    public void setPermissionId(Integer permissionId) {
        this.permissionId = permissionId;
    }

    /**
     * 
     * @date 2019-09-27 10:49:22
     * @return system_id 
     */
    public Integer getsystemType() {
        return systemType;
    }

    /**
     * 
     * @date 2019-09-27 10:49:22
     * @param systemType 
     */
    public void setsystemType(Integer systemType) {
        this.systemType = systemType;
    }

    /**
     * 名称
     * @date 2019-09-27 10:49:22
     * @return permission_name 名称
     */
    public String getPermissionName() {
        return permissionName;
    }

    /**
     * 名称
     * @date 2019-09-27 10:49:22
     * @param permissionName 名称
     */
    public void setPermissionName(String permissionName) {
        this.permissionName = permissionName == null ? null : permissionName.trim();
    }

    /**
     * code编码  控制前端是否显示
     * @date 2019-09-27 10:49:22
     * @return code code编码  控制前端是否显示
     */
    public String getCode() {
        return code;
    }

    /**
     * code编码  控制前端是否显示
     * @date 2019-09-27 10:49:22
     * @param code code编码  控制前端是否显示
     */
    public void setCode(String code) {
        this.code = code == null ? null : code.trim();
    }

    /**
     * action
     * @date 2019-09-27 10:49:22
     * @return action_url action
     */
    public String getpathUrl() {
        return pathUrl;
    }

    /**
     * action
     * @date 2019-09-27 10:49:22
     * @param pathUrl action
     */
    public void setpathUrl(String pathUrl) {
        this.pathUrl = pathUrl == null ? null : pathUrl.trim();
    }

    /**
     * 操作日志名称
     * @date 2019-09-27 10:49:22
     * @return permission_description 操作日志名称
     */
    public String getPermissionDescription() {
        return permissionDescription;
    }

    /**
     * 操作日志名称
     * @date 2019-09-27 10:49:22
     * @param permissionDescription 操作日志名称
     */
    public void setPermissionDescription(String permissionDescription) {
        this.permissionDescription = permissionDescription == null ? null : permissionDescription.trim();
    }

    /**
     * 权限等级，1为通用接口权限，2为需要校验接口权限
     * @date 2019-09-27 10:49:22
     * @return api_level 权限等级，1为通用接口权限，2为需要校验接口权限
     */
    public Integer getApiLevel() {
        return apiLevel;
    }

    /**
     * 权限等级，1为通用接口权限，2为需要校验接口权限
     * @date 2019-09-27 10:49:22
     * @param apiLevel 权限等级，1为通用接口权限，2为需要校验接口权限
     */
    public void setApiLevel(Integer apiLevel) {
        this.apiLevel = apiLevel;
    }

    /**
     * 顺序
     * @date 2019-09-27 10:49:22
     * @return sort 顺序
     */
    public Integer getSort() {
        return sort;
    }

    /**
     * 顺序
     * @date 2019-09-27 10:49:22
     * @param sort 顺序
     */
    public void setSort(Integer sort) {
        this.sort = sort;
    }

    /**
     * 0：按钮1：菜单 2：api,3:url 4:超链 5 页签
     * @date 2019-09-27 10:49:22
     * @return permission_type 0：按钮1：菜单 2：api,3:url 4:超链 5 页签
     */
    public Integer getPermissionType() {
        return permissionType;
    }

    /**
     * 0：按钮1：菜单 2：api,3:url 4:超链 5 页签
     * @date 2019-09-27 10:49:22
     * @param permissionType 0：按钮1：菜单 2：api,3:url 4:超链 5 页签
     */
    public void setPermissionType(Integer permissionType) {
        this.permissionType = permissionType;
    }

    /**
     * icon
     * @date 2019-09-27 10:49:22
     * @return icon icon
     */
    public String getIcon() {
        return icon;
    }

    /**
     * icon
     * @date 2019-09-27 10:49:22
     * @param icon icon
     */
    public void setIcon(String icon) {
        this.icon = icon == null ? null : icon.trim();
    }

    /**
     * 上级菜单的编号
             0代表当前菜单为根结点
             
     * @date 2019-09-27 10:49:22
     * @return pid 上级菜单的编号
             0代表当前菜单为根结点
             
     */
    public Integer getPid() {
        return pid;
    }

    /**
     * 上级菜单的编号
             0代表当前菜单为根结点
             
     * @date 2019-09-27 10:49:22
     * @param pid 上级菜单的编号
             0代表当前菜单为根结点
             
     */
    public void setPid(Integer pid) {
        this.pid = pid;
    }

    /**
     * 备注
     * @date 2019-09-27 10:49:22
     * @return remark 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 备注
     * @date 2019-09-27 10:49:22
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    /**
     * 是否删除(0:否，1：是)
     * @date 2019-09-27 10:49:22
     * @return is_delete 是否删除(0:否，1：是)
     */
    public Boolean getIsDelete() {
        return isDelete;
    }

    /**
     * 是否删除(0:否，1：是)
     * @date 2019-09-27 10:49:22
     * @param isDelete 是否删除(0:否，1：是)
     */
    public void setIsDelete(Boolean isDelete) {
        this.isDelete = isDelete;
    }

    /**
     * 创建时间
     * @date 2019-09-27 10:49:22
     * @return gmt_create 创建时间
     */
    public LocalDateTime getGmtCreate() {
        return gmtCreate;
    }

    /**
     * 创建时间
     * @date 2019-09-27 10:49:22
     * @param gmtCreate 创建时间
     */
    public void setGmtCreate(LocalDateTime gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * 更新时间
     * @date 2019-09-27 10:49:22
     * @return gmt_modified 更新时间
     */
    public LocalDateTime getGmtModified() {
        return gmtModified;
    }

    /**
     * 更新时间
     * @date 2019-09-27 10:49:22
     * @param gmtModified 更新时间
     */
    public void setGmtModified(LocalDateTime gmtModified) {
        this.gmtModified = gmtModified;
    }

    public String getUri() {
        return uri;
    }

    public void setUri(String uri) {
        this.uri = uri;
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ResourceBean other = (ResourceBean) that;
        return (this.getPermissionId() == null ? other.getPermissionId() == null : this.getPermissionId().equals(other.getPermissionId()))
            && (this.getsystemType() == null ? other.getsystemType() == null : this.getsystemType().equals(other.getsystemType()))
            && (this.getPermissionName() == null ? other.getPermissionName() == null : this.getPermissionName().equals(other.getPermissionName()))
            && (this.getCode() == null ? other.getCode() == null : this.getCode().equals(other.getCode()))
            && (this.getpathUrl() == null ? other.getpathUrl() == null : this.getpathUrl().equals(other.getpathUrl()))
            && (this.getPermissionDescription() == null ? other.getPermissionDescription() == null : this.getPermissionDescription().equals(other.getPermissionDescription()))
            && (this.getApiLevel() == null ? other.getApiLevel() == null : this.getApiLevel().equals(other.getApiLevel()))
            && (this.getSort() == null ? other.getSort() == null : this.getSort().equals(other.getSort()))
            && (this.getPermissionType() == null ? other.getPermissionType() == null : this.getPermissionType().equals(other.getPermissionType()))
            && (this.getIcon() == null ? other.getIcon() == null : this.getIcon().equals(other.getIcon()))
            && (this.getPid() == null ? other.getPid() == null : this.getPid().equals(other.getPid()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
            && (this.getIsDelete() == null ? other.getIsDelete() == null : this.getIsDelete().equals(other.getIsDelete()))
            && (this.getUri() == null ? other.getUri() == null : this.getUri().equals(other.getUri()))
            && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
            && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()));
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getPermissionId() == null) ? 0 : getPermissionId().hashCode());
        result = prime * result + ((getsystemType() == null) ? 0 : getsystemType().hashCode());
        result = prime * result + ((getPermissionName() == null) ? 0 : getPermissionName().hashCode());
        result = prime * result + ((getCode() == null) ? 0 : getCode().hashCode());
        result = prime * result + ((getpathUrl() == null) ? 0 : getpathUrl().hashCode());
        result = prime * result + ((getPermissionDescription() == null) ? 0 : getPermissionDescription().hashCode());
        result = prime * result + ((getApiLevel() == null) ? 0 : getApiLevel().hashCode());
        result = prime * result + ((getSort() == null) ? 0 : getSort().hashCode());
        result = prime * result + ((getPermissionType() == null) ? 0 : getPermissionType().hashCode());
        result = prime * result + ((getIcon() == null) ? 0 : getIcon().hashCode());
        result = prime * result + ((getPid() == null) ? 0 : getPid().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getIsDelete() == null) ? 0 : getIsDelete().hashCode());
        result = prime * result + ((getUri() == null) ? 0 : getUri().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        return result;
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", permissionId=").append(permissionId);
        sb.append(", systemType=").append(systemType);
        sb.append(", permissionName=").append(permissionName);
        sb.append(", code=").append(code);
        sb.append(", pathUrl=").append(pathUrl);
        sb.append(", permissionDescription=").append(permissionDescription);
        sb.append(", apiLevel=").append(apiLevel);
        sb.append(", sort=").append(sort);
        sb.append(", permissionType=").append(permissionType);
        sb.append(", icon=").append(icon);
        sb.append(", pid=").append(pid);
        sb.append(", remark=").append(remark);
        sb.append(", isDelete=").append(isDelete);
        sb.append(", uri=").append(uri);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}